home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 8 / QRZ Ham Radio Callsign Database - Volume 8.iso / pc / files / t_unix / j109lxa4.tar / kissdump.c < prev    next >
C/C++ Source or Header  |  1994-06-04  |  2KB  |  95 lines

  1. /* Tracing routines for KISS TNC
  2.  * Copyright 1991 Phil Karn, KA9Q
  3.  *
  4.  * Modified by G1EMM  19/11/90 to support multiport KISS mode.
  5.  */
  6.  
  7. #include "global.h"
  8. #include "mbuf.h"
  9. #include "kiss.h"
  10. #include "devparam.h"
  11. #include "ax25.h"
  12. #include "trace.h"
  13.  
  14. void
  15. #ifdef MONITOR
  16. ki_dump(fp,bpp,check,mon)
  17. int mon;
  18. #else
  19. ki_dump(fp,bpp,check)
  20. #endif
  21. FILE *fp;
  22. struct mbuf **bpp;
  23. int check;
  24. {
  25.     int type;
  26.     int val;
  27.  
  28. #ifdef MONITOR
  29.     if (!mon)
  30. #endif
  31.     fprintf(fp,"KISS: ");
  32.     type = PULLCHAR(bpp);
  33.     if((type & 0x0f) == PARAM_DATA){
  34. #ifdef MONITOR
  35.         if (!mon)
  36. #endif
  37.         fprintf(fp,"Port %d Data\n", type >> 4);
  38. #ifdef MONITOR
  39.         ax25_dump(fp,bpp,check,mon);
  40. #else
  41.         ax25_dump(fp,bpp,check);
  42. #endif
  43.         return;
  44.     }
  45.     if(type == PARAM_RETURN){
  46.         fprintf(fp,"RETURN\n");
  47.         return;
  48.     } else {
  49. #ifdef MONITOR
  50.         if (!mon)
  51. #endif
  52.         fprintf(fp,"Port %d ", type >> 4);
  53.     }
  54.     val = PULLCHAR(bpp);
  55.     switch(type & 0x0f){
  56.     case PARAM_TXDELAY:
  57.         fprintf(fp,"TX Delay: %lu ms\n",val * 10L);
  58.         break;
  59.     case PARAM_PERSIST:
  60.         fprintf(fp,"Persistence: %u/256\n",val + 1);
  61.         break;
  62.     case PARAM_SLOTTIME:
  63.         fprintf(fp,"Slot time: %lu ms\n",val * 10L);
  64.         break;
  65.     case PARAM_TXTAIL:
  66.         fprintf(fp,"TX Tail time: %lu ms\n",val * 10L);
  67.         break;
  68.     case PARAM_FULLDUP:
  69.         fprintf(fp,"Duplex: %s\n",val == 0 ? "Half" : "Full");
  70.         break;
  71.     case PARAM_HW:
  72.         fprintf(fp,"Hardware %u\n",val);
  73.         break;
  74.     default:
  75.         fprintf(fp,"code %u arg %u\n",type,val);
  76.         break;
  77.     }
  78. }
  79.  
  80. int
  81. ki_forus(iface,bp)
  82. struct iface *iface;
  83. struct mbuf *bp;
  84. {
  85.     struct mbuf *bpp;
  86.     int i;
  87.  
  88.     if((bp->data[0] & 0x0f) != PARAM_DATA)
  89.         return 0;
  90.     dup_p(&bpp,bp,1,AXALEN);
  91.     i = ax_forus(iface,bpp);
  92.     free_p(bpp);
  93.     return i;
  94. }
  95.